function ImageSwitcher(item_oid) {
	this.item_oid = item_oid;

	this._view = new ImageSwitcherView(jQuery("#i"+this.item_oid+" ul.js_ctl_thumbs"));
	this._view.initThumbTypes();
	this.selected = this._view.thumbtypes[0]; // тумб по умолчанию
	this.image = jQuery("#i"+this.item_oid+" img.js_image-container" );
	
	this.ic = new ImageContainer( this.image );
	
	this._switchToThumb = function(type) {
		
		if (type == this.selected) return;

		// скрывает "свитчер" у выбранного типа
		this._view.hideSwitchElt(type);
		
		// выводит "информер" выбранного типа
		this._view.showSInfoElt(type);
		
		// покажем "свитчер" выбранного ранее типа
		this._view.showSwitchElt(this.selected);
		
		// скроем "информер" 
		this._view.hideSInfoElt(this.selected);
		
		// переключим картинку
		this.ic.changeImage(type);
		this.selected = type;
	}
	
	this._setDefault = function() {
		var default_val = this._view.getDefaultType();
		if (default_val) {
			this.selected = default_val;
		} 
	}
	
	this._bindEvents = function() {

		jQuery(this._view.getSwitchingElt()).bind("click", this, function(event) {
			event.preventDefault();
			var _this = event.data;
			var clicked_elt = this;
			// достать из ссылки тип
			// пройти по всем типам, если хоть один из них есть в классах кликнутого элемента, то на него переключить
			var type = _this._view.getTypeBySwitchingElt(clicked_elt);

			if (type) {
				_this._switchToThumb( type );
			}

		});
	}
	
	var _this = this;
	jQuery(document).ready(function() {
		_this._setDefault();
		_this._bindEvents();
		_this._switchToThumb(_this.selected);
	});
}

function ImageContainer(dom_elt) {
	
	this._view = new ImageContainerView(dom_elt);
	this._image_oid = this._view.getImageOid();
	
	this.changeImage = function(type) {
		var path = imagestorage_url + "/" + this._image_oid + "/" + type;
		this._view.setImageSrc(path);
		this._view.setImageType( "" + type );
	}
	
}

// Аккуратней! Вызывается извне!
function reInitImageSwitchers() {
	if (window.is == null) window.is = {};

	jQuery("#itemslist > :has(img.js_image-container) ").each(function(i) {
		var a = jQuery(this).attr("id");
		var item_id = a.substring(1);
		if (window.is[item_id] == null) {
			window.is[item_id] = new ImageSwitcher(item_id);
		}
		
	});
}

jQuery(document).ready(function() {
	window.imagestorage_url = jQuery("#imagestorage_url").attr("href");
	reInitImageSwitchers();
});
